iT邦幫忙

2024 iThome 鐵人賽

DAY 2
3

安裝JDK, Maven, GraalVM和C++編譯器

在開始使用 Quarkus 進行微服務開發之前,確保你的開發環境已經安裝了以下三個關鍵工具:JDK(Java Development Kit)、Maven 和 GraalVM。這些工具將為你提供開發、構建和優化 Java 應用所需的基礎設施。

安裝JDK

JDK(Java開發工具包)是一個專為開發Java應用程序而設計的完整開發環境。它包含了運行和開發Java應用所需的所有工具和資源,包括:

  • Java虛擬機(JVM):負責運行編譯後的Java程序,讓Java代碼在不同平台上都能運行。
  • Java標準庫:提供了Java開發中常用的類和方法,如集合、I/O操作、網絡通信等,極大地簡化了開發工作。

安裝方法

  • Windows
    • 下載並安裝JDK或Oracle JDK
    • 設置JAVA_HOME環境變量
      • 右鍵點擊 "此電腦" > "屬性" > "系統設置" > "環境變量"。
      • 在系統變量中新增 JAVA_HOME,並將其值設置為JDK的安裝路徑。
      • 在Path變量中添加 %JAVA_HOME%\bin
  • Linux
    • 使用包管理器安裝,例如
    sudo apt update
    sudo apt install openjdk-11-jdk
    
    • 安裝完成後,通過以下命令確認是否成功:
    java -version
    

版本選擇:建議使用最新的LTS版本(如JDK 11或JDK 17),以確保穩定性和長期支持。

安裝Maven or Gradle

Maven

Maven是一個專案構建管理工具,主要用於自動化Java項目的構建過程。不僅僅負責編譯代碼,還可以幫助程式專案管理項目依賴、執行測試、打包應用程式、生成文檔等。Maven使用一個名為pom.xml的配置文件來定義項目的依賴、插件、構建流程等信息。關鍵功能如下

  • 依賴管理:自動解決並下載所需的第三方函式庫。
  • 專案建置:自動編譯程式碼、執行測試並打包應用程式。
  • 專案管理:提供標準化的專案結構,使團隊開發更有效率。

安裝方法

  • Windows:
    • 下載並安裝Maven
    • 設置 MAVEN_HOME 環境變量,並將 MAVEN_HOME/bin 添加到Path中。
  • Linux: 使用包管理器安裝,例如:
sudo apt install maven

安裝完成後,通過以下命令確認是否成功:

mvn -version

Gradle

與Maven一樣都是用於專案建構工具,但是是 基於Groovy或Kotlin DSL(腳本語言),配置文件更加靈活(build.gradle),允許更多自定義和擴展,特別適合複雜的構建需求。

安裝方法

  • Windows: 到 Gradle 官網 下載最新版本的二進制包(不要下載源碼包,請下載「Complete」版本),並設置GRADLE_HOME環境變量。

  • Linux 安裝 Gradle

    sudo apt install gradle
    

    驗證安裝

    gradle -v
    

依賴管理:使用Maven或Gradle進行依賴管理時,推薦使用可信的套件服務存取服務(如Maven Central或JCenter)來獲取依賴包,並注意版本控制以避免依賴衝突。

構建腳本:保持 pom.xmlbuild.gradle 文件簡潔和可讀,避免過度複雜的構建邏輯。

GraalVM安裝

GraalVM 是一個高性能的多語言虛擬機, 改善多種編程語言的執行效率,並支持多種應用場景。它由 Oracle 開發,基於 Java 虛擬機(JVM),但不僅限於 Java,還支持 JavaScriptPythonRubyRLLVMWebAssembly 等語言。

而Qarkus 是專為雲原生應用和微服務設計的 Java 框架,GraalVM 則是 Quarkus 的一個關鍵組件,尤其在本地映像建置(Native Image Generation)有重要作用。Quarkus 和 GraalVM 結合後,能夠大幅提升 Java 應用在現代雲端環境中的性能。

安裝方式

  • Windows(Windows很麻煩):

    • 下載並安裝GraalVM

    • 設置GRAALVM_HOME環境變量。

    • 安裝 native-image 工具

      • GraalVM 提供了一個 gu 工具來安裝 native-image
      gu install native-image
      
      • 確認 native-image 已安裝:
      native-image --version
      
  • Linux

    • 下載 GraalVM

      • 前往 GraalVM 官網 下載適用於 Linux 的版本。選擇 Java 版本(例如 GraalVM CE 17)並下載 .tar.gz 文件。
    • 解壓和安裝 GraalVM

      • 打開終端並將 .tar.gz 文件解壓到你希望安裝 GraalVM 的位置:
      tar -xvzf graalvm-ce-java17-linux-amd64-<version>.tar.gz -C /opt/
      
    • 為了方便,將解壓的目錄重命名為 graalvm-ce-java17

      sudo mv /opt/graalvm-ce-java17-<version> /opt/graalvm-ce-java17
      
    • 設置環境變量

      • 設置 GRAALVM_HOME

        • 編輯你的 ~/.bashrc~/.zshrc 文件,添加以下內容來設置 GRAALVM_HOME 和更新 PATH
        export GRAALVM_HOME=/opt/graalvm-ce-java17
        export PATH=$GRAALVM_HOME/bin:$PATH
        
        • 使配置生效:
      source ~/.bashrc  # 或 source ~/.zshrc
      
      
    • 驗證安裝:

      • 打開終端並輸入以下命令來確認 GraalVM 是否安裝成功:

        java -version
        
    • 安裝 native-image 工具

      與 Windows 相同,使用 gu 工具來安裝 native-image

      在終端中運行以下命令:

      gu install native-image
      

      確認 native-image 已安裝:

      native-image --version
      
    • 詳細可參照GraalVM官網文件

以上步驟可能看起來有點繁瑣,如果你使用 IntelliJ IDEA,這位強大的開發工具可以幫你自動完成大部分的配置,讓你專注於編寫程式。

安裝C++編譯器

在使用GraalVM進行本地映像生成時,還需要配置一個C++編譯器。因為GraalVM的本地映像生成過程會將Java應用程序轉換成原生二進制文件,這些文件能夠直接在操作系統上運行,而不需要JVM。

安裝方式

  • Windows

    • 安裝Visual Studio (最簡單操作)
      • 前往 Visual Studio官網 下載安裝程序。

      • 在安裝時,選擇 "Desktop development with C++" 工作負載。這將安裝包括C++編譯器在內的一系列開發工具。

      • 在安裝完成後,系統會自動配置環境變量

      • 打開命令提示符,輸入以下命令以確認編譯器是否安裝成功

        cl
        
  • Linux

    • 使用包管理器安裝GCC
    # Debian/Ubuntu系統
    sudo apt update
    sudo apt install build-essential
    
    # RHEL/CentOS系統
    sudo yum group install "Development Tools"
    
    # Fedora系統
    sudo dnf groupinstall "Development Tools"
    
    • 驗證編譯器安裝

      安裝完成後,你可以在終端輸入以下命令來確認GCC是否安裝成功

      gcc --version
      g++ --version
      

C++編譯器的安裝是GraalVM生成本地映像的必要步驟之一。Visual Studio、Xcode命令行工具和GCC都能夠滿足這一需求。在完成上述安裝步驟後,你就可以利用GraalVM將Java應用編譯成native image。


上一篇
前言
下一篇
設置IDE( IntelliJ IDEA)
系列文
微服務奇兵:30天Quarkus特訓營30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言